LUDMILA MARIA RATTIS TEIXEIRA

Exerccios Aula 6 - Teste de Hiptese e Simulao

##Crie seus dados

#Crie dois conjuntos de dados: 

A. Dez observaes de uma amostra de uma distribuio normal com 
mdia 6 e desvio padro 3 

B. Idem para uma distribuio normal com mdia 7.5 e desvio padro
3.2 

DICA: utilize a funo rnorm() 

1-)Utilize a funo simula.r e teste a hiptese que as mdias das 
amostras so diferentes. No esquea de usar a funo source() 
para carregar a funo!

R:
> data.a=abs(round(rnorm(10,mean=6,sd=3))) 
> data.a
 [1]  4  7  9  4  3 14  2  5  6  7
> data.b=abs(round(rnorm(10,mean=7.5,sd=3.2)))
> data.b
 [1] 10  9 14  6  6  5  4  4  3  1
> media.data.a = mean(data.a) 
> media.data.a
[1] 6.1
> media.data.b = mean(data.b) 
> media.data.b
[1] 6.2
> conj. = c(data.a,data.b) 
> conj. 
 [1]  4  7  9  4  3 14  2  5  6  7 10  9 14  6  6  5  4  4  3  1
> media.conj. = mean(conj.) 
> media.conj.
[1] 6.15
> sd.conj.= sd(conj.) 
> sd.conj.
[1] 3.558163
> dif.entre = abs(media.data.a-media.data.b) 
> dif.entre
[1] 0.1
> ##testando pelo boxplot:
> nomes.conj.=factor(rep(c("data.a","data.b"),each=10))
> nomes.conj.
 [1] data.a data.a data.a data.a data.a data.a data.a data.a data.a data.a
[11] data.b data.b data.b data.b data.b data.b data.b data.b data.b data.b
Levels: data.a data.b
> boxplot(conj.~ nomes.conj.)
> ##testando pelo simula.r( )
> resposta= rep(NA, 10)
> for(i in 1:10)
+ {
+ cat("\n\t", i) 
+ } 

         1
         2
         3
         4
         5
         6
         7
         8
         9
         10> for (i in 1:10) 
+ { 
+ resposta[i] = mean(round(rnorm(10, mean=7.5, sd=3.2)))- mean(round(rnorm(10, mean=6, sd=3))) 
+ } 
> resposta[i]
[1] 3.4
> 
> dif.total=simula(data.a,data.b,nsim=2000,teste="bi")
simula uma distribuio nula, no caso de teste unicaudal o primeiro vetor deve ser o dos dados que seriam maiores.
 As opoes de teste so (entre aspas):
         uni (normal unicaudal)
         bi (normal bicaudal) 
         t (distribuio t)

 Diferena absoluta observada entre as mdias das variveis =  0.1 
> table(dif.total)
dif.total
  0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9   1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 
 49 102 103  98  98  99 106  92  80  87  80  80  78  88  56  66  55  69  56  59 
  2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9   3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 
 43  33  31  30  38  19  27  19  21  18  20  12  12  13  10   3   6   7   9   3 
  4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 5.6 
  4   5   2   3   3   2   2   3   1 
> dif.depois=sum(dif.total>=3.4) 
> dif.depois
[1] 63
> p1=dif.depois/length(dif.total)
> p1
[1] 0.0315
> 

2-)Teste agora que a mdia da segunda amostra  maior que a 
primeira.

R:
resposta.2 = rep(NA, 10) 
for (j in 1:10) 
{ 
cat('\n\t', j) 
} 
for (j in 1:10) 
{ 
media.a=mean(round(rnorm(10, mean=7.5, sd=3.2)))
media.b=mean(round(rnorm(10, mean=6, sd=3)))
media.a
media.b
resposta.2[j] = media.a- media.b 
} 
resposta.2[j] 
dif.a.b = simula(data.a,data.b, nsim=2000, teste='uni') 
table(dif.a.b) 
#mostra o numero de ocorrencias de cada media 
menor.dif = sum(dif.a.b)<=dif.entre 
menor.dif 
dif.entre
p2 = menor.dif/length(dif.a.b) 
p2 


3-)Utilize agora a funo t.test() para testar as mesmas hipteses. 
Os resultados so iguais?

R:
t.test(data.a,data.b)

        Welch Two Sample t-test

data:  data.a and data.b 
t = -0.0612, df = 17.841, p-value = 0.9519
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval:
 -3.536558  3.336558 
sample estimates:
mean of x mean of y 
      6.1       6.2 


4-)No esquea de fazer um grfico para mostrar os dados

R:
par(mfrow=c(3,1))
hist(datas, freq=FALSE,xlim=c(1,20)) 
curve(exp=dnorm(x, mean=mean(data),sd=sd(data)),from=0,to=21, col="red", add=T) 
boxplot(datas~nomes.conj.) 
plot(1:20, datas, pch=rep(c(15,16), each=10), col=rep(1:2, each=10)) 
for (i in 1:10) 
{ 
lines(c(i,i),c(datas[i],media.a),col=1) 
} 
for(j in 11:20) 
{ 
lines(c(j,j),c(datas[j],media.b),col=2) 
} 
lines(c(1,10),c(media.a,media.a),col=1) 
lines(c(11,20),c(media.b,media.b),col=2) 
par(mfrow=c(1,1)) 

##Caixeta de NOVO?!


#Utilizando os dados da planilha caixeta.csv 

caixeta=read.table("caixeta.csv",header=T,as.is=T,sep=",")


1-)Calcule os valores de rea basal por fuste 

R:
head(caixeta)
caixeta$parcela = as.factor(caixeta$parcela) 
caixeta$local = as.factor(caixeta$local) 
str(caixeta) 
caixeta$area.basal <- (caixeta$cap^2)/(4*pi)
caixeta$area.basal 
str(caixeta$area.basal) 
length(caixeta$fuste) 
head(caixeta)

2-)Calcule os valores de rea basal por amostra em cada uma das 
localidades

R:
chauas = caixeta[(caixeta$local=="chauas"),] 
jureia = caixeta[(caixeta$local=="jureia"),] 
retiro = caixeta[(caixeta$local=="retiro"),] 
area.basal.chauas = tapply(chauas$area.basal, INDEX=chauas$parcela, FUN=sum) 
area.basal.jureia= tapply(jureia$area.basal, INDEX=jureia$parcela, FUN=sum) 
area.basal.retiro =tapply(retiro$area.basal, INDEX= retiro$parcela, FUN = sum) 
area.basal.chauas 
area.basal.jureia 
area.basal.retiro




3-)Produza grficos para mostrar os dados

R:
par(cex.axis=1) 
par(cex.lab=1.3) 
par(bty="l")
boxplot(area.basal.chauas, area.basal.jureia, area.basal.retiro, ylab="rea basal", xlab="", main= "rea basal X Localidade") 
mtext(c("Chauas","Juria","Retiro")
, side= 1 ,line=2,at=c(1,2,3)) 



4-)Calcule os valores de uma tabela Anova para esses dados sendo a 
varivel dependente a rea basal e o tratamento as localidades. 
Cada observao referece a uma amostra ou parcela.

R:
#DESVIO QUADRTICO TOTAL
caixeta<-data.frame(basal.chauas,basal.jureia,basal.retiro)
caixeta
media.geral<-mean(c(basal.chauas,basal.jureia,basal.retiro))
media.geral
des.total<-caixeta-media.geral
des.total
des.total.q<-desvio.total^2
des.total.q
soma.des.total.q<-sum(des.total.q)
soma.des.total.q  

##DESVIO QUADRTICO INTRAGRUPOS
med.local<-mean(caixeta)
med.local
des.intra<-data.frame(basal.chauas,basal.jureia,basal.retiro)
des.intra$desvio.chauas<-caixeta$basal.chauas-med.local["basal.chauas"]
des.intra$desvio.jureia<-caixeta$basal.jureia-med.local["basal.jureia"]
des.intra$desvio.retiro<-caixeta$basal.retiro-med.local["basal.retiro"]
des.intra

desvio.chauas<-sum(desvios.intra["desvio.chauas"]^2)
desvio.chauas
desvio.jureia<-sum(desvios.intra["desvio.jureia"]^2)
desvio.jureia
desvio.retiro<-sum(desvios.intra["desvio.retiro"]^2)
desvio.retiro

soma.intra<-sum(desvio.chauas,desvio.jureia,desvio.retiro)
soma.intra   

##DESVIO QUADRTICO ENTRE GRUPOS
diff.entre<-soma.des.total.q-soma.intra
diff.entre    

## GRAUS DE LIBERDADE

grau.liberdade.total<-15-1   		
grau.liberdade.intra<-15-3  		
grau.liberdade.entre<-grau.liberdade.total-grau.liberdade.intra   
grau.liberdade.total
grau.liberdade.intra
grau.liberdade.entre

## DESVIO MDIO

desvio.medio.intra<-soma.intra/grau.liberdade.intra
desvio.medio.intra			
desvio.medio.entre<-soma.entre/grau.liberdade.entre
desvio.medio.entre
			

## CLCULO DE F

F<-desvio.medio.entre/desvio.medio.intra
F     

## CLCULO DE p

p<-pf(F, 2, 12, lower.tail = FALSE, log.p = FALSE)
p    


   FONTE      DESVIO QUADRTICO	GRAUS DE LIBERDADE	DESVIO MDIO	RAZO DAS VARINCIAS	PROBABILIDADES
Entre grupos	1649495370    	      2    	         824747685	     1.329489	           0.3009299
Intra grupos	7444192546	     12	                 620349379		

Total	        9093687916           14			


5-)Calcule a tabela de anova com a funo aov().

R:
> area.basal<-c(basal.chauas,basal.jureia,basal.retiro) 
> locais <- as.factor(c(rep(c("basal.chauas","basal.jureia", "basal.retiro"), each=5))) 
> aov(area.basal~locais) 
Call:
   aov(formula = area.basal ~ locais)

Terms:
                    locais  Residuals
Sum of Squares  1649495370 7444192546
Deg. of Freedom          2         12

Residual standard error: 24906.81 
Estimated effects may be unbalanced


6-)Qual  a porcentagem de variao explicada pela localidade 
nesse caso?

R:
> porc.=(diff.entre/soma.intra)*100
> porc.
[1] 22.15815
> 
